/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package managers;

import beans.MedioComunicacion;
import beans.Musica;
import dao.MedioComunicacionDao;
import dao.MusicaDao;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
import util.MediosTableModel;
import util.MusicasTableModel;

/**
 *
 * @author nMoncho
 */
public class ManagerMusica {
    
    private List<Musica> musicas;
    private ArrayList<Musica> musicasModelo;
    private MusicasTableModel model;
    private List<Musica> musicasABorrar;

    public ManagerMusica(){
        musicas = MusicaDao.getMusica();
        rellenarModelo();

        musicasABorrar = new ArrayList<Musica>();
    }

    private void rellenarModelo() {
        musicasModelo = new ArrayList<Musica>();
        musicasModelo.addAll(musicas);

        model = new MusicasTableModel(musicasModelo);
    }

    public AbstractTableModel getModel(){
        return model;
    }

    public boolean agregarMusica(String nombre){
        for(Musica musica : musicas){
            if(musica.getNombre().toLowerCase().compareTo(nombre.toLowerCase()) == 0)
                return false;
        }

        Musica musica = new Musica();
        musica.setNombre(nombre);

        musicas.add(musica);
        musicasModelo.add(musica);

        return true;
    }

    public void borrarMusica(int fila){
        Musica musica = musicasModelo.get(fila);

        musicasModelo.remove(musica);
        musicas.remove(musica);

        musicasABorrar.add(musica);
    }

    public boolean guardarCambios(){
        boolean exito = MusicaDao.saveOrUpdateOrDelete(musicas, musicasABorrar);

        return exito;
    }
}
